#ifndef NODE_PRIORITY_QUEUE_H_INCLUDED
#define NODE_PRIORITY_QUEUE_H_INCLUDED

#include <vector>
#include <map>

typedef std::map<int, float> Costs;

class NodePriorityQueue
{
public:
	NodePriorityQueue(Costs* costs) : m_Costs(costs) {}
	int Top();
	void Pop();
	void Push(int n);
	bool IsEmpty();

private:
	Costs* m_Costs;

	std::vector<int> m_Nodes;

};

#endif